package tests;

import common.Utils;
import org.openqa.selenium.Alert;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.WebElement;
import org.openqa.selenium.support.ui.ExpectedConditions;

import java.util.List;

public class EditPage extends Utils {
    //可在博客列表页点击写博客
    public static String url = "http://8.137.19.140:9090/blog_edit.html";
    public EditPage() {
        super(url);
    }

    /*
     * 发布失败：
     * 不写标题
     * 不写内容
     * 都不写
     * */

    //不写标题
    public void editPageFail_noTitle(){
        //直接点击发布博客：
        //会出现弹窗
        driver.findElement(By.cssSelector("#submit")).click();

        //先等待弹窗
        wait.until(ExpectedConditions.alertIsPresent());
        //处理弹窗
        Alert alert = driver.switchTo().alert();
        //点击确定(这里只有一个按钮的时候，使用 accept 或者 dismiss 都可以)
        alert.accept();
        //点击确定后，会任然回到当前页面
        //检查一下是否回到当前页面
        assert (driver.getCurrentUrl()).contains("blog_edit");

    }



    public void editPageFail_noContent(){
        //先写标题
//        driver.findElement(By.cssSelector("#title")).sendKeys("自动化测试标题");

    }

    /*
    * 成功提交博客
    * */
    public void editPageSuc() {
        //页面的刷新
        driver.navigate().refresh();

        //先写标题
        String title = "没座";
        driver.findElement(By.cssSelector("#title")).sendKeys(title);
        //本身就有内容，直接点击发布
        driver.findElement(By.cssSelector("#submit")).click();

        //回到列表页面
        //获取所有的文章根据最后一片文章的标题来判断是否为我们刚刚发布的文章
        List<WebElement> elems = driver.findElements(By.cssSelector("body > div.container > div.right > div"));
        System.out.println("size: " + elems.size());

        //获取最新博客的title
        String focus = "body > div.container > div.right > div:nth-child(" + elems.size() + ") > div.title";
        String actualText = driver.findElement(By.cssSelector(focus)).getText();
        assert actualText.equals(title);

        driver.quit();

    }
}
